#pragma once

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

//#define NDEBUG
#include <assert.h>

#define MAX 100
#define DEFAULT_SZ  3
#define INC_SZ 2

#define NAME_MAX 20
#define SEX_MAX  5
#define ADDR_MAX 30
#define TELE_MAX 12



typedef struct PeoInfo
{
    char name[NAME_MAX];
    int age;
    char sex[SEX_MAX];
    char addr[ADDR_MAX];
    char tele[TELE_MAX];
}PeoInfo;

typedef struct contacts
{
    PeoInfo* data;
    int sz;
    int capacity;
}Contacts;

//打印菜单
void menu(void);

//初始化通讯录
void InitContacts(Contacts* con);

//销毁通讯录
void DestroyContacts(Contacts* con);

//加载信息到通讯录
void LoadContacts(Contacts* con);

//添加联系人
void AddContacts(Contacts* con);

//显示通讯录中的信息
void ShowContacts(Contacts* con);

//删除指定联系人
void DelContacts(Contacts* con);

//查找指定联系人
void SearchContacts(Contacts* con);

//修改指定联系人
void ModifyContacts(Contacts* con);

//按照姓名首字母顺序排序
void SortContacts(Contacts* con);

//加载文件信息到通讯录
void LoadContacts(Contacts* con);

//保存通讯录中的信息到文件中
void SaveContacts(Contacts* con);

